-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build lib/ objects in the SConscript variant_dir. #1841
Conversation
Packaging is almost certainly broken, but this is ready for testing by anyone who is interested. |
73f8c85
to
6005793
Compare
Windows packaging is ok -- need to test on Ubuntu and macOS. |
macOS packaging is ok. |
Ubuntu packaging works. |
From a fresh checkout, running
And
|
Saw your comment on Zulip, building from scratch works fine for me on macOS. |
Thanks for testing @beenisss! |
@beenisss I'm not sure what that error indicates on the SCons side. @daschuer do you have any ideas? |
I think you can chalk this up to some transient blip on my local machine, I've been getting some weird inconsistent behaviour with building and cleaning lately. Just tried this again and didn't get the error. |
d76a031
to
7a92b80
Compare
I think this change is ready to go, I've personally tested on windows/macos/linux and @beenisss tested on macos. |
SCons has a feature that lets you declare a repository-root absolute path to a file (e.g. "#lib/soundtouch/..."). Using this feature prevents SCons from automatically re-directing built artifacts to a variant_dir. To work around this, this commit moves src/SConscript and src/SConscript.env to the root, and changes all paths in SConscripts to use SConscript-relative paths. This commit also switches to building an explicit static library for vamp-hostdk, vamp-sdk, and soundtouch when internal linking is enabled and the VAMP plugin now uses the system soundtouch if it is present. Fixes Bug #1191327 and Bug #1617802.
Any objections? I'd like to merge this so I can stop having to rebase :). |
Will test soon |
if os.path.exists(defs): | ||
print("Deleting deprecated build file: %s" % defs) | ||
os.remove(defs) | ||
# We are in the variant_dir (win|mac|lin)XX_build, and the 'src' subdirectory |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any particular reason we put the OS name in the build directory name? Why not just call the directory build
like is conventional with CMake?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure, I think if you switch between 32-bit and 64-bit builds on the same checkout it could be handy and @Pegasus-RPG has done that in the past. But I don't think the OS name needs to be there.
Works for me 👍 |
Thanks for testing! |
SCons has a feature that lets you declare a repository-root absolute
path to a file (e.g. "#lib/soundtouch/..."). Using this feature
prevents SCons from automatically re-directing built artifacts to a
variant_dir. To work around this, this commit moves src/SConscript and
src/SConscript.env to the root, and changes all paths in SConscripts
to use SConscript-relative paths.
This commit also switches to building an explicit static library for
vamp-hostdk, vamp-sdk, and soundtouch when internal linking is enabled
and the VAMP plugin now uses the system soundtouch if it is present.
Fixes Bug #1191327 and Bug #1617802.